#include <stdio.h>

/*
输出
printf() 格式化打印输出
    格式化打印输出 就是 可以参照你的格式 输出  变量  以及字符串

格式符
    %d  对应整数
    %f  对应浮点数
    %c  对应字符
    %s  对应字符串
    %p  对应地址

    %x  对应16进制
    %o  对应8进制

描述符号
    左对齐  %-8d     总共占用 8位  "123        "
    右对齐  %8d
    右对齐 添加符号 +   %+8d      "     +10"

    前导补0 %08d     00000123

    精度    %.2f    0.00
转义字符
    \n 换行
    \t 水平制表符
    \\ 输出斜杠
    %% 输出百分号
    \a 蜂鸣器

*/


/*
头文件
函数原型
函数参数
返回值
函数说明以及函数功能


// 头文件
#include <stdio.h>

FILE *stream
暂时填写标准文件
stdin   标准输入
stdout  标准输出

int fputc(int c, FILE *stream);
功能：输出字符到文件
函数参数
    @ c         你要输出的字符
    @ stream    你要输出的目标文件
返回值
    成功 返回输出的字符
    失败 返回EOF(-1)

int fputs(const char *s, FILE *stream);
功能:输出字符串到文件
函数参数
    @ s         你要输出的字符串
    @ stream    你要输出的目标文件
返回值
    成功 返回非负数
    失败 返回EOF(-1)

// 输出字符到文件
int putc(int c, FILE *stream);
功能：输出字符到文件
函数参数
    @ c         你要输出的字符
    @ stream    你要输出的目标文件
返回值
    成功 返回输出的字符
    失败 返回EOF(-1)

int putchar(int c);
功能：输出字符到终端
函数参数
    @ c         你要输出的字符
返回值
    成功 返回输出的字符
    失败 返回EOF(-1)

int puts(const char *s);
功能：输出字符串到终端
函数参数
    @ c         你要输出的字符串
返回值
    成功 返回非负数
    失败 返回EOF(-1)

*/

int main(int argc, char const *argv[])
{
    int val = 10;
    double dou = 3.1415;
    int * ptr = &val;

    printf("ptr = %p\n" , ptr);
    printf("ptr = 0x%x\n" , ptr);
    printf("ptr = 0x%X\n" , ptr);

    // 对其操作
    printf("%-8d %d\n" , val , val);
    printf("%8d %d\n" , val , val);
    printf("%08d %d\n" , val , val);

    printf("%.4f\n" , dou);

    // 常用输出函数
    fputc('A' , stdout);
    fputc('\n' , stdout);

    fputs("今天天气不错\n" , stdout);

    putc('A' , stdout);
    putc('\n' , stdout);


    putchar('A');
    
    puts("今天天气真不错"); // 自带回车

    return 0;
}


